/*------------------------------------------------------------------------------
 * Copyright 2012 NCR Corporation
 *------------------------------------------------------------------------------
 * All revision information is updated automatically from source code control
 * change records - please do not manually edit.
 *------------------------------------------------------------------------------
 *
 *  $LastChangedRevision:: 1993                                     $
 *  $LastChangedBy:: rb250096                                       $
 *  $LastChangedDate:: 2012-04-03 09:55:49 -0400 (Tue, 03 Apr 2012) $
 */

package com.ncr.nep.dashboardcore.modularization.client;

/**
 * Encapsulates a GWT code split into an easily reusable interface.  Each
 * split point has a unique ID that, when used in conjunction with the 
 * {@link SplitPointRegistry} allows for easily referencing split points and
 * loading them into the application.
 *
 * See
 * {@link com.google.gwt.core.client.GWT#runAsync(com.google.gwt.core.client.RunAsyncCallback)}
 * for more info on GWT code splitting.
 *     
 * @author rb250096
 * @version $Revision: 1993 $
 */
public interface SplitPoint {

    /**
     * Gets unique ID used to represent the SplitEntryPoint in the registry.
     *
     * @return The unique ID for the entry point.
     */
    public String getRegistryId();

    /**
     * Loads the code split.
     *
     * @param handler Handler used to notify the caller when the root object
     *                is ready for use.
     */
    public void loadAsync(final SplitPointLoadedHandler handler);
}
